查看原文
其他

R包cocorresp的协对应分析(CoCA)

生信小白鱼 鲤小白 小白鱼的生统笔记 2022-05-08
R包cocorresp的协对应分析(CoCA)
协惯量分析(CoIA)分析中,要求输入的两个数据集的行权重必须相等,在某种程度上限制了基于单峰响应的对应分析(CA)方法的在CoIA中的使用。因此,CoIA大多用于表征两数据集之间的线性相关。
协对应分析(co-correspondence analysisCoCA)可将CoIA的思想与CA中的单峰方法结合在一起,在群落分析中,常用于对来自相同样方的两类不同类群物种丰度矩阵进行关联(ter Braak and Schaffers, 2004)。CoCA首先对两个物种丰度矩阵分别执行CA排序分解正交轴(特征向量),之后融合两组特征向量,使代表最佳协惯量方向的轴的组合能够最好地解释两个数据集中物种和观测值之间的协变。

CoCA有两种类型,对称模式的CoCA和非对称模式的CoCA。

对称模式的CoCA中,两个物种丰度矩阵之间无解释和被解释的关系,二者地位等同。结果用于衡量两矩阵间的共同结构,或者说某种类型的相关。

非对称模式的CoCA中,采用了更为直接的回归模型,其中一个矩阵扮演响应角色,另一个矩阵扮演预测角色。在这种模式下,一组物种数据用于预测另一组。

本篇简介R包cocorresp的CoCA方法,包含对称和非对称模式的CoCA。

 

数据集


cocorresp包的内置数据集beetles、plants,记录了30个地点的甲虫和维管植物物种丰度的观测结果,包含126种甲虫和231种维管植物类群。

library(cocorresp)
 
#数据集。详情 ?beetles、?plants
data(beetles)
data(plants)
 
#为了使甲虫数据集更加均一并具有稳定的方差,进行对数转换
beetles <- log(beetles + 1)


接下来使用CoCA,推测甲虫类群和植物类群的相互关系。

 

对称模式的CoCA


cocorresp中,CoCA通过coca()函数执行。

对称模式的CoCA意在确立两数据集之间的某种相关性,表征共同结构。

##对称 CoCA,详情 ?coca
 
#直接输入两数据矩阵,method = 'symmetric' 意为执行对称 CoCA,此时 y 和 x 的顺序无关紧要
bp.sym <- coca(y = beetles, x = plants, method = 'symmetric')
 
#或者通过公式指定变量,这里“~.”代表使用 plants 全部的物种变量
bp.sym <- coca(beetles ~ ., data = plants, method = 'symmetric')
 
bp.sym
summary(bp.sym)

结果中,我们通常期望CoCA轴的“Explained”尽可能与“Total”相当,且较少的CoCA轴能够承载绝大部分的特征值。


#提取主要信息,例如
#names(bp.sym)
 
bp.sym$scores$site$X  #数据集 X 的对象在 CoCA 轴上的得分(坐标)
bp.sym$scores$species$X  #据集 X 的变量在 CoCA 轴上的得分(坐标)
bp.sym$scores$site$Y  #数据集 Y 的对象在 CoCA 轴上的得分(坐标)
bp.sym$scores$species$Y  #据集 Y 的变量在 CoCA 轴上的得分(坐标)
bp.sym$lambda  #各 CoCA 轴的特征值


#通过特征值折线图,可以看到前 2-3 轴承载了绝大部分的协惯量
screeplot(bp.sym)


#获取甲虫和植物在 CoCA 轴上得分的相关性,可知它们之间是高度相关的
corAxis(bp.sym)

 

上述相关指的两数据集整体的相关性。若对于单个变量间的关系,可通过排序图评估。

绘制包含对象和变量的双序图,观测两个数据集中的对象和变量在CoCA协惯量轴中的投影位置。

#绘制双序图,观测前两轴中,两个数据集的对象(样方)和变量(物种)关系
#y1 表示数据集 Y(本示例为 beetles),y2 表示数据集 X(本示例为 plants)
layout(matrix(1:2, ncol = 2))
biplot(bp.sym, which = 'y1', main = 'Beetles', type = 'text', choices = 1:2)
biplot(bp.sym, which = 'y2', main = 'Plants', type = 'text', choices = 1:2)

结合两图,若某甲虫物种和某植物物种均在靠近同一样方的位置出现,则表明它们倾向于“共存”,即正相关关系。


 

非对称模式的CoCA


在非对称模式的CoCA中,基于某种回归模型,通过一个矩阵对另一矩阵建模,意在通过一个矩阵的结构推断另一矩阵的结构。

##非对称 CoCA,详情 ?coca

#直接输入两数据矩阵,method = 'predictive' 意为执行模型 CoCA,此时 y 代表响应变量矩阵,x 代表预测变量矩阵
#reg.method 参数用于指定使用的模型
bp.pred <- coca(y = beetles, x = plants, method = 'predictive', reg.method = 'simpls')

#或者通过公式指定变量,这里“~.”代表使用 plants 全部的物种变量预测 beetles 的物种
bp.pred <- coca(beetles ~ ., data = plants, method = 'predictive', reg.method = 'simpls')

bp.pred
summary(bp.pred)

结果中,我们通常期望较少的CoCA轴能够解释绝大部分的原数据集总惯量。


对于主要结果部分的查看和提取,和上文对称 CoCA中的方法类似。

 

接下来可通过交叉验证评估选择多少个轴观测是合适的。

#交叉验证,详情 ?crossval
crossval(beetles, plants)

首先,选择的轴数尽可能少;其次,交叉验证结果中对应的值尽可能高。结果显示选择前两轴是合适的。


并且在这种模型类的排序方法中,仅当排序轴显著时,才具说服力。

#置换检验,999 次置换为例,详情 ?permutest
bp.perm <- permutest(bp.pred, permutations = 999)
bp.perm

显示前两轴是显著的。


 

模型CoCA的排序图。和对称CoCA的排序图解读方式相似,若某甲虫物种和某植物物种均在靠近同一样方的位置出现,则表明它们倾向存在“正协同”,该植物物种的数量增加时,该甲虫物种的数量也增加。

#绘制双序图观测前两轴
layout(matrix(1:2, ncol = 2))
biplot(bp.pred, which = 'y1', main = 'Beetles', type = 'text', choices = 1:2)
biplot(bp.pred, which = 'y2', main = 'Plants', type = 'text', choices = 1:2)

 

参考资料


ter Braak, C.J.F and Schaffers, A.P. (2004) Co-Correspondence Analysis: a new ordination method to relate two community compositions. Ecology 85(3), 834-846

 


链接

R包ade4的RLQ分析和第四角分析

R包omicade4的多元协惯量分析(MCoIA)

协惯量分析(CoIA)及其在R中的实现

典范相关分析(CCorA)及其在R中的实现

R包vegan的主响应曲线(PRC)

简单总结一下常见的基于距离的差异检验方法

R包vegan的典范对应分析(CCA)

R包vegan的基于距离的冗余分析(db-RDA)

R包vegan的冗余分析(RDA)

R包vegan实现在物种多度的非约束排序中被动拟合环境变量

R包vegan的群落去趋势对应分析(DCA)

R包vegan的群落PCA及tb-PCA分析



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存